DOM Based XSS
参考
/mrsekut-book-4797393165/453 (4.17 JavaScriptの問題)
~
そんなにちゃんと読んでない
mrsekut.icon
#WIP
他2つのXSSはserver側の不備が原因だが、DOM Based XSSはclient側(JS)に不備がある
あるある原因
URLの#
e.g.
>http://example.jp/4h/4h-001.html#<img src=/ onerror=alert (1)>
dangerouslySetInnerHTML
?
jQueryのhtml()
Element.innerHTML
?
document.write
?
https://gihyo.jp/dev/serial/01/javascript-security/0006
https://gihyo.jp/dev/serial/01/javascript-security/0007
https://gihyo.jp/dev/serial/01/javascript-security/0008
クライアントのjsで実行される
SourceとSinkがある
source (XSS)
sink (XSS)
mXSS
Mutation-based XSS
https://hasegawa.hatenablog.com/entry/20140508/p1
https://dl.acm.org/doi/10.1145/2508859.2516723
https://www.slideshare.net/x00mario/the-innerhtml-apocalypse
http://www.thespanner.co.uk/2014/05/06/mxss/
Script Gadgets
https://medium.com/inet-lab/script-gadgetsのデモを作成してみた-aed15357e09b
https://github.com/google/security-research-pocs/tree/master/script-gadgets
対策
Trusted Types
他の対策手法
今も使われているのかは知らない
mrsekut.icon
テイント解析
DexterJS